Analyses en vrac

In [ ]:
# 0. Imports divers
 
import plotly.express as px
import plotly.graph_objects as go
import pandas as pd
pd.options.plotting.backend = 'plotly'

import numpy as np
import reader_excel as re  # Pour faciliter lecture divers Excel
import reader_simus as rs  # Pour faciliter lecture des résultats des simulations

1. Saison 2019-2020

1.1 Comparaison HTN jalons à deux paramétrisations

Pour commencer, affichage HTN jalons du transect principal :

In [ ]:
dat = re.jalons_transect_principal('data/jtp_20192020.xlsm')
fig = px.scatter(
    dat, 
    symbol='variable', 
    labels={
        "variable": "Jalons & Simulations",
        "value": "HTN (cm)"
    })
fig

Comparaison avec simulation utilisant le taux de fonte prescrit par [Raleigh & Lundquist, 2012]

In [ ]:
x, y = rs.getxyfromvar('/home/boucheta/Documents/Modélisation/Simulations/Col_de_Porte/20192020/Foret/output-MLT-LUNDQUIST/pro/PRO_2019080106_2020080106.nc', 'DSN_T_ISBA')
y = y * 100
y = np.array(y).flatten()

fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='Lundquist melting rate'))

Comparaison avec d'autres schémas légèrement modifiés :

In [ ]:
x, y = rs.getxyfromvar('/home/boucheta/Documents/Modélisation/Simulations/Col_de_Porte/20192020/Foret/output-MLT-X100-LAURE/pro/PRO_2019080106_2020080106.nc', 'DSN_T_ISBA')
y = y * 100
y = np.array(y).flatten()

fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='Laure melting rate'))
In [ ]:
x, y = rs.getxyfromvar('/home/boucheta/Documents/Modélisation/Simulations/Col_de_Porte/20192020/Foret/output-LUNDQUIST/pro/PRO_2019080106_2020080106.nc', 'DSN_T_ISBA')
y = y * 100
y = np.array(y).flatten()

fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='Lundquist schemes'))
In [ ]:
x, y = rs.getxyfromvar('/home/boucheta/Documents/Modélisation/Simulations/Col_de_Porte/20192020/Foret/output/pro/PRO_2019080106_2020080106.nc', 'DSN_T_ISBA')
y = y * 100
y = np.array(y).flatten()

fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='MEB schemes'))

Finalement, en considérant l'interception comme un puit de masse :

In [ ]:
x, y = rs.getxyfromvar('/home/boucheta/Documents/Modélisation/Simulations/Col_de_Porte/20192020/Foret/output-SINK/pro/PRO_2019080106_2020080106.nc', 'DSN_T_ISBA')
y = y * 100
y = np.array(y).flatten()

fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='Interception as a sink'))

Ou ici en supprimant la décharge :

In [ ]:
x, y = rs.getxyfromvar('/home/boucheta/Documents/Modélisation/Simulations/Col_de_Porte/20192020/Foret/output-NO-UNLOADING/pro/PRO_2019080106_2020080106.nc', 'DSN_T_ISBA')
y = y * 100
y = np.array(y).flatten()

fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name='No Unloading'))

1.2 [A REPRENDRE] Pour essayer : test de sensibilité au LAI

In [ ]:
dat_dsn = {}
dat_swd = {}

for lai in [2, 4, 6]:
    dat_dsn[lai] = rs.getDataFramefromvar('/home/boucheta/Documents/Analyse/sensibility_test_LAI/output_LAI_' + str(lai) + '/pro/PRO_2019080106_2020080106.nc', 'DSN_T_ISBA')
    dat_dsn[lai] = dat_dsn[lai].rename(columns={"DSN_T_ISBA" : "LAI=" + str(lai)})
    dat_swd[lai] = rs.getDataFramefromvar('/home/boucheta/Documents/Analyse/sensibility_test_LAI/output_LAI_' + str(lai) + '/pro/PRO_2019080106_2020080106.nc', 'SWDN_GN_ISBA')
    dat_swd[lai] = dat_swd[lai].rename(columns={"SWDN_GN_ISBA" : "LAI=" + str(lai)})
In [ ]:
dat_dsn[2].plot(y='LAI=2', ylabel="DSN_T_ISBA", xlabel='Date') * dat_dsn[4].plot(y='LAI=4') * dat_dsn[6].plot(y='LAI=6')
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning:

urllib3 (1.26.8) or chardet (3.0.4) doesn't match a supported version!

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-10-f67cd6a6f1c4> in <module>
----> 1 dat_dsn[2].plot(y='LAI=2', ylabel="DSN_T_ISBA", xlabel='Date') * dat_dsn[4].plot(y='LAI=4') * dat_dsn[6].plot(y='LAI=6')

/usr/lib/python3/dist-packages/pandas/plotting/_core.py in __call__(self, *args, **kwargs)
    792                     data.columns = label_name
    793 
--> 794         return plot_backend.plot(data, kind=kind, **kwargs)
    795 
    796     def line(self, x=None, y=None, **kwargs):

/usr/local/lib/python3.8/dist-packages/plotly/__init__.py in plot(data_frame, kind, **kwargs)
    100         return scatter(data_frame, **new_kwargs)
    101     if kind == "line":
--> 102         return line(data_frame, **kwargs)
    103     if kind == "area":
    104         return area(data_frame, **kwargs)

TypeError: line() got an unexpected keyword argument 'ylabel'
In [ ]:
dat_swd[2].plot(y='LAI=2', ylabel="SWDN_GN_ISBA", xlabel='Date') * dat_swd[4].plot(y='LAI=4') * dat_swd[6].plot(y='LAI=6')

2. Saison 2020-2021

Résultat d'une simulation classique avec MEB pour cette saison :

In [ ]:
x, y = rs.getxyfromvar('/home/boucheta/Documents/Modélisation/Simulations/Col_de_Porte/20202021/Foret/output/pro/PRO_2020080106_2021080106.nc', 'DSN_T_ISBA')
y = y * 100
y = np.array(y).flatten()

go.Figure(go.Scatter(x=x, y=y, mode='lines', name='MEB'))
In [ ]: